from redis import StrictRedis
import logging

# 创建项目配置类
class Config(object):

    # 开启debug模式
    DEBUG = True

    # mysql数据库的配置信息
    SQLALCHEMY_DATABASE_URI = "mysql://feng:mysql@127.0.0.1:3306/zixun"
    # 开启数据库跟踪
    SQLALCHEMY_TRACK_MODIFICATIONS = True
    # redis数据库的配置信息
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379
    REDIS_NUM = 8

    # session配置
    SECRET_KEY = "sgiUBBRqLfVUWp9r4NQw5Vmd6PV5V1oxU3Cd9bIpnam07ttm38xwPzUDzMwoKvlr"
    # 调整session存储到redis的配置信息
    # 设置存储session的数据库类型
    SESSION_TYPE = "redis"
    #  创建数据库实例对象配置
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT, db=REDIS_NUM)
    # session数据需要加密处理
    SESSION_USE_SIGNER = True
    # session设置有过期时长的
    SESSION_PERMANENT = False   # True 无过期时长
    # 设置过期时长 默认值：timedelta(days=31)
    PERMANENT_SESSION_LIFETIME = 86400 * 2


"""开发模式的配置继承"""
class DevelopmentConfig(Config):
    """开启DEBUG模式"""
    DEBUG = True
    # 设置开发环境日志级别
    LOG_LEVEL = logging.DEBUG


"""线上模式的配置继承"""
class ProductionConfig(Config):
    DEBUG = True  # 关闭DEBUGM模式
    # 设置线上环境日志级别
    LOG_LEVEL = logging.WARNING

# 提供一个接口给外界调用
# 用法： config_dict["development"] --> DevelopmentConfig

config_dict = {
    "development": DevelopmentConfig,
    "production": ProductionConfig
}